Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > 日本語 - Japanese > 「htmlFilter」 と 「htmlFilterIn」 プロパティの使い方
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

Community article「htmlFilter」 と 「htmlFilterIn」 プロパティの使い方
Added by ~Rebecca Minfreevitchobu | Edited by ~Rebecca Minfreevitchobu on June 7, 2012 | Version 2
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: Xpage, XPages EditBox, XPages コントロール, X-page, プロパティ
ShowTable of Contents
HideTable of Contents
  • 1 はじめに
  • 2 プロパティの違いと設定できるフィルタ
  • 3 動作の詳細
    • 3.1 htmlFilter プロパティ
    • 3.2 htmlFilterIn プロパティ

はじめに


「htmlFilter」 と 「htmlFilterIn」 プロパティはリッチテキスト・編集ボックス・複数行編集ボックスの各コントロールで指定できるプロパティです。

Lotus Notes 文書を XPages で表示するときに、表示フィールドに悪意のスクリプトが埋め込まれれことで問題が起こることがあります。そのような悪意のあるスクリプトを表示させない、あるいは文書の保存の際にはスクリプトを保存させないために、入出力時のフィルタを設定するために、これらのプロパティを使用します。


プロパティの違いと設定できるフィルタ


この2つのプロパティのうち「htmlFilter」 プロパティは、保存される文書のデータを XPages で表示するときのフィルタを設定します。
一方、「htmlFilterIn」 プロパティは、XPages で編集した文章を保存するときのフィルタを設定します。

指定できるフィルターは以下の4つです。デフォルトでは何も指定されていませんん。
  • 「identity」 ・・・ コンテンツの内容に手を加えない
  • 「acf」 ・・・ Active Content Filter (ACF) によるフィルタリングを行い、潜在的な危険性を持つ
  • 「empty」 ・・・ コンテンツのすべての内容を削除する
  • 「striptags」 ・・・ タグをすべて取り去り、平文のみを残す

参考文献: XPages Wiki の 「Work with RichText」

動作の詳細


これらの2つのプロパティの違いを見るために、10個のリッチテキストフィールドを持つフォームを作成し、このフォームの表示する XPage を作成し、リッチテキストコントロールでこれらのフィールドを表示・編集できるようにします。
フィールド名リッチテキストコントロールの
「htmlFilter」 プロパティの値
リッチテキストコントロールの
「htmlFilterIn」 プロパティの値
Body01
設定なし
設定なし
Body02
identity
設定なし
Body03
acf
設定なし
Body04
empty
設定なし
Body05
striptags
設定なし
Body01_1
設定なし
設定なし
Body02_1
設定なし
identity
Body03_1
設定なし
acf
Body04_1
設定なし
empty
Body05_1
設定なし
striptags
リッチテキストフィールドでテストするコンテンツとして以下の内容を使用します。これは 「htmlFilter」プロパティのテストをする、最初の5つのフィールドにLotus Notes から設定します。



最初のボタンには JavaScript で以下のようなコードを記述します。
alert("Hello");


次のボタンには LotusScript で以下のようなコードを記述します。
MessageBox "Hello" 


XPages ではなく、Domino HTML で表示すると、これらの文書はそのまま表示され、どちらのボタンも JavaScript の alert() として埋め込まれて、Web ブラウザで実行することが可能です。

htmlFilter プロパティ


あらかじめ Lotus Notes でリッチテキストフィールドに上記のような装飾つきの文字列やボタンを入力した文書を、XPages から開きます。そして、入力した内容がどのように表示されるかを比較します。

リッチテキストコントロールの
「htmlFilter」 プロパティの値
XPages で表示されたページの状態
設定なし
「acf」が指定されたときと同じ状態。
identity
文字の装飾やボタンがそのまま表示され、ボタンを押すとダイアログボックスが表示されます。Web ブラウザでソースを確認すると、どちらのボタンも JavaScript で実装されたスクリプトが記述されています。
acf
文字の装飾やボタンがそのまま表示されますが、ボタンを押しても何も起こりません。ボタンの Web ブラウザでソースを確認すると、onClick イベントの内容は空文字となっています。
empty
リッチテキスとの内容はまったく表示されません。
striptags
文字の装飾がすべてなくなり平文として表示されます。ボタンは表示されません。

XPage で表示される画面のイメージは以下になります。

htmlFilterIn プロパティ


「htmlFilterIn」プロパティは、XPages で編集し保存されるときのフィルターを設定します。このフィルターの動きを調べるには XPages で編集している画面にでリッチテキストコントロールに装飾つきの文字列やスクリプトを記述したコンテンツを入力する必要があります。
そこで、先ほど htmlFilter=identity で表示された 「Body02」 フィールドの内容をコピー&ペーストして、「htmlFilterIn」プロパティを設定したフィールドに入力し、文書を保存することとします。そしてその保存内容を Lotus Notes から確認します。

リッチテキストコントロールの
「htmlFilterIn」 プロパティの値
Lotus Notes で確認したリッチテキストフィールドの状態
設定なし
「identity」が指定されたときと同じ状態。
identity
文字の装飾やボタンがそのまま保存され、ボタンを押すとダイアログボックスが表示されます。Lotus Notesでソースを確認すると、どちらのボタンも JavaScript で実装されたスクリプトが記述されています。
acf
文字の装飾やボタンがそのまま保存されますが、ボタンを押しても何も起こりません。ボタンの Lotus Notes でソースを確認すると、JavaScript が選択されていますが、スクリプトは記述されていません。
empty
リッチテキスとの内容は空で保存されます。
striptags
文字の装飾がすべてなくなり平文として保存されます。ボタンは保存されません。

保存された文書を Lotus Notes から見たときのイメージは以下になります。
expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (4)
collapsed Versions (4)
Version Comparison     
VersionDateChanged by              Summary of changes
4Jun 27, 2012, 2:32:15 AM~Yoshi Desveluvitchettu  Updated by Ikeyama
3Jun 7, 2012, 10:18:28 AM~Rebecca Minfreevitchobu  
This version (2)Jun 7, 2012, 10:15:52 AM~Rebecca Minfreevitchobu  
1Jun 7, 2012, 8:33:46 AM~Rebecca Minfreevitchobu  
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL
  • Privacy
  • Accessibility